package com.ruralflow.flow.mapper;

import java.util.List;

import com.ruralflow.common.annotation.UserRoleLimiter;
import com.ruralflow.flow.domain.FlowPass;
import org.apache.ibatis.annotations.Param;

/**
 * 通行证概览Mapper接口
 * 
 * @author ruralflow
 * @date 2025-02-20
 */
public interface FlowPassMapper 
{
    /**
     * 查询通行证概览
     * 
     * @param passId 通行证概览主键
     * @return 通行证概览
     */
    public FlowPass selectFlowPassByPassId(Long passId);

    /**
     * 查询通行证概览列表
     * 
     * @param flowPass 通行证概览
     * @return 通行证概览集合
     */
    @UserRoleLimiter
    public List<FlowPass> selectFlowPassList(FlowPass flowPass);

    /**
     * 新增通行证概览
     * 
     * @param flowPass 通行证概览
     * @return 结果
     */
    public int insertFlowPass(FlowPass flowPass);

    /**
     * 修改通行证概览
     * 
     * @param flowPass 通行证概览
     * @return 结果
     */
    public int updateFlowPass(FlowPass flowPass);

    /**
     * 删除通行证概览
     * 
     * @param passId 通行证概览主键
     * @param updateBy 修改人
     * @return 结果
     */
    public int deleteFlowPassByPassId(@Param("passId") Long passId,
                                      @Param("updateBy") String updateBy);

    /**
     * 批量删除通行证概览
     * 
     * @param passIds 需要删除的数据主键集合
     * @param updateBy 修改人
     * @return 结果
     */
    public int deleteFlowPassByPassIds(@Param("passIds") Long[] passIds,
                                       @Param("updateBy") String updateBy);

    Integer selectCountFlowPass();
}
